package xyz.hujf.base.yield;

/**
 * @author Hujf
 * @title: YieldTest
 * @date 2021-04-2119:54
 * @description:
 *
 * yield 方法被调用 暗示线程调度器 当前线程请求让出自己的CPU使用，但是线程调度器可以无条件忽视
 *
 * 我们知道操作系统为每个线程分配一个时间片来占有CPU的 正常情况下 当一个线程调用
 */
public class YieldTest implements Runnable{

    public YieldTest() {
        Thread t = new Thread(this);
        t.start();
    }

    @Override
    public void run() {
        for(int i=1;i<=5;i++){
            if( i%5==0){
                System.out.println(Thread.currentThread()+"yield cpu ..."+ i);
            }
        }
        System.out.println(Thread.currentThread()+"is over");
    }

    public static void main(String[] args) {
        new YieldTest();
        new YieldTest();
        new YieldTest();
    }
}
